package com.ruoyi.camp.service.impl;

import java.util.List;

import com.ruoyi.common.utils.uuid.IdUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.camp.mapper.CProjectMapper;
import com.ruoyi.camp.domain.CProject;
import com.ruoyi.camp.service.ICProjectService;

/**
 * 项目Service业务层处理
 *
 * @author ruoyi
 * @date 2024-12-02
 */
@Service
public class CProjectServiceImpl implements ICProjectService {
    @Autowired
    private CProjectMapper cProjectMapper;

    /**
     * 查询项目
     *
     * @param projectid 项目主键
     * @return 项目
     */
    @Override
    public CProject selectCProjectByProjectid(String projectid) {
        return cProjectMapper.selectCProjectByProjectid(projectid);
    }

    /**
     * 查询项目列表
     *
     * @param cProject 项目
     * @return 项目
     */
    @Override
    public List<CProject> selectCProjectList(CProject cProject) {
        return cProjectMapper.selectCProjectList(cProject);
    }

    /**
     * 根据营地Id查询该营地的所有其他项目
     *
     * @param campId 营地Id
     * @return 该营地的项目列表
     */
    @Override
    public List<CProject> getInfoByCampId(String campId) {
        //封装条件
        CProject project = new CProject();
        project.setCampid(campId);
        project.setApprove("1");
        //查询项目列表
        List<CProject> list = cProjectMapper.selectCProjectList(project);
        //数据类型转换
        if (list != null && list.size() > 0) {
            return list;
        }
        return null;
    }

    /**
     * 根据项目Id获取详细信息
     *
     * @param projectId 项目Id
     * @return 项目对象
     */
    @Override
    public CProject getInfo(String projectId) {
        //根据项目Id查询对象
        CProject project = cProjectMapper.selectCProjectByProjectid(projectId);
        //返回对象
        return project;
    }

    /**
     * 新增项目
     *
     * @param Project 项目
     * @return 结果
     */
    @Override
    public int insertCProject(CProject Project) {
        //设置条件
        Project.setProjectid(IdUtils.randomUUID());
        Project.setApprove("0");
        //新增项目
        return cProjectMapper.insertCProject(Project);
    }

    /**
     * 修改项目
     *
     * @param cProject 项目
     * @return 结果
     */
    @Override
    public int updateCProject(CProject cProject) {
        //设置条件
        cProject.setApprove("0");
        //数据类型转换
        //修改项目
        return cProjectMapper.updateCProject(cProject);
    }

    /**
     * 批量删除项目
     *
     * @param projectids 需要删除的项目主键
     * @return 结果
     */
    @Override
    public int deleteCProjectByProjectids(String[] projectids) {
        return cProjectMapper.deleteCProjectByProjectids(projectids);
    }

    /**
     * 删除项目信息
     *
     * @param projectid 项目主键
     * @return 结果
     */
    @Override
    public int deleteCProjectByProjectid(String projectid) {
        return cProjectMapper.deleteCProjectByProjectid(projectid);
    }
}